import pymysql


# 定义一个 工具 类      hahahahahha
class DBTools(object):
    # 建立 连接 方法     定义 成 静态 方法
    @staticmethod
    def db_connect():
        # 建立 连接 ，返回 连接的对象

        conn = pymysql.connect(host="211.103.136.244", port=7061, user="student",
                               password="iHRM_student_2022", database="ihrm",
                               charset="utf8")
        return conn

    # 数据库  查询  方法    定义成  静态 方法
    @staticmethod
    def query_one(sql):
        conn = None
        cursor = None

        try:
            # 创建  连接
            conn = DBTools.db_connect()
            #  创建游标
            cursor = conn.cursor()

            #  执行 sql 语句 --- 查询                                database="books",
            cursor.execute(sql)

            # 提取结果    获取 第一条 数据
            ret = cursor.fetchone()

            return ret

        except Exception as err:
            print("出错了兄嘚：", err)


        finally:
            #  关闭游标
            cursor.close()

            #  关闭连接
            conn.close()

    # 查询 指定 位置的 数据   的 方法
    @staticmethod
    def query_many(sql, r, y):
        conn = None
        cursor = None

        try:
            #  创建  连接
            conn = DBTools.db_connect()
            #  创建游标
            cursor = conn.cursor()

            #  执行 sql 语句 --- 查询                                database="books",
            cursor.execute(sql)

            # 定义 游标 位置
            cursor.rownumber = r

            # 提取结果    获取 想要 提取的  数据
            ret = cursor.fetchmany(y)

            return ret

        except Exception as err:
            print("出错了兄嘚：", err)


        finally:
            # 5. 关闭游标
            cursor.close()

            # 6. 关闭连接
            conn.close()

    # 数据库  增删改  方法
    @staticmethod
    def db_idu(sql):
        conn = None
        cursor = None

        try:
            # 创建  连接
            conn = DBTools.db_connect()

            # 3. 创建游标
            cursor = conn.cursor()

            # 4. 执行 sql 语句                              database="books",
            cursor.execute(sql)

            # 提交   事务
            conn.commit()
            print("数据库操作完成")

            # 当 上面 出错后，执行下面  代码
        except Exception as err:
            print("出错了兄嘚：", err)

            # 出错后  回滚  事务
            conn.rollback()

        finally:
            # 5. 关闭游标
            cursor.close()

            # 6. 关闭连接
            conn.close()


if __name__ == '__main__':
    # num = DBTools.db_connect()
    # print(num)

    # ret = DBTools.query_one("select * from employees")
    # print(ret)
    #
    # ret1 = DBTools.query_many("select * from bs_user", 1, 4)
    # print(ret1)
    #
    # DBTools.db_idu("create table t_book(book varchar(10),quantity int,comment int(10),release_date datetime)")

    # DBTools.db_idu("insert into bs_user (id,mobile,username)values('976963','13840402878','迪迦凹凸曼');")

    DBTools.db_idu("delete from bs_user where mobile = '15898736240';")
